\chapter{高级主题}
\label{ch:advanced-topics}

本章面向高级用户，涵盖自定义扩展、性能调优与团队协作策略。

\section{自定义类型映射}

\subsection{扩展 TypeMapper}

\begin{lstlisting}[language=Python]
from orchestrator.mapping.type_mapper import TypeMapper

mapper = TypeMapper()
mapper.add_custom_mapping(
    csharp_type="Vector3",
    cpp_type="glm::vec3",
    includes=["glm/glm.hpp"],
)
\end{lstlisting}

可以批量注册：

\begin{lstlisting}[language=Python]
custom_mappings = {
    "Color": ("sf::Color", ["SFML/Graphics/Color.hpp"]),
    "Texture": ("sf::Texture", ["SFML/Graphics/Texture.hpp"]),
}

for cs_type, (cpp_type, includes) in custom_mappings.items():
    mapper.add_custom_mapping(cs_type, cpp_type, includes)
\end{lstlisting}

\subsection{映射到第三方库}

\begin{table}[h]
\centering
\small
\begin{tabularx}{\textwidth}{llX}
\toprule
\textbf{C\# 类型} & \textbf{C++ 类型} & \textbf{库} \\
\midrule
\code{Vector2/3} & \code{glm::vec2/3} & GLM 数学库 \\
\code{Matrix4x4} & \code{glm::mat4} & GLM \\
\code{Color} & \code{sf::Color} & SFML 图形库 \\
\code{Bitmap} & \code{cv::Mat} & OpenCV \\
\code{Regex} & \code{std::regex} & STL \\
\code{Thread} & \code{std::thread} & STL \\
\code{Task<T>} & \code{std::future<T>} & STL \\
\bottomrule
\end{tabularx}
\caption{常见类型映射至第三方库}
\end{table}

\section{高级命名策略}

可以在自定义脚本中覆盖默认命名函数：

\begin{lstlisting}[language=Python]
from orchestrator.codegen.naming import to_snake_case, ACRONYMS

ACRONYMS.update({"MYCO", "DEPT"})

def custom_method_name(name: str) -> str:
    base = to_snake_case(name)
    return f"api_{base}"
\end{lstlisting}

\section{性能优化}

\begin{itemize}[leftmargin=*]
    \item 启用 `--parallel` 参数以利用多核 CPU
    \item 将转换结果缓存到 SSD，减少重复生成时间
    \item 使用 `cpp-orchestrator report --delta` 对比不同版本的成功率
\end{itemize}

\section{团队协作建议}

\begin{enumerate}
    \item 在版本库中保存 `.cpp-orchestrator.yml`，确保团队配置一致
    \item 使用 CI 自动执行 `convert + report`，将成功率作为质量门槛
    \item 对桩代码建立跟踪清单，逐步替换为真实实现
\end{enumerate}

通过这些高级技巧，可进一步提升大规模迁移项目的效率与可维护性。
